package com.specter.serv.service;

import java.util.List;

/**
 * 数据机密性及完整性服务
 * 
 * @author Liang.Wang
 * @since 2025-02-28
 * @version 1.0
 */
public interface SureService {
    /**
     * 数据加密
     * 
     * @param plains 明文
     * @return 密文
     */
    public String encrypt(String plains);

    /**
     * 数据解密
     * 
     * @param secret 密文
     * @return 明文
     */
    public String decrypt(String secret);

    /**
     * 批量加密
     * 
     * @param list 明文集合
     * @return 密文集合
     */
    public List<String> encrypt(List<String> list);

    /**
     * 批量解密
     * 
     * @param list 密文集合
     * @return 明文集合
     */
    public List<String> decrypt(List<String> list);

    /**
     * 计算哈希值
     * 
     * @param value 待计算的字符串
     * @return 哈希值
     */
    public String hmac(String text);

    /**
     * 验证哈希值
     * 
     * @param value 待计算的字符串
     * @param mac   待验证的mac值
     * @return true or false
     */
    public boolean vmac(String text, String hmac);

}
